package com.soup.common.module.sys.mapper;

import com.soup.common.mapper.CustomMapper;
import com.soup.common.module.sys.entity.Menu;
import com.soup.common.module.sys.entity.RoleMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * sys Role Menu Func mapper
 *
 * @author zhaoyi
 */
public interface RoleMenuMapper extends CustomMapper<RoleMenu> {

    /**
     * 根据角色id删除菜单功能
     *
     * @param roleId 角色id
     */
    void deleteByRole(Integer roleId);

    /**
     * 新增角色的菜单功能
     *
     * @param roleId 角色id
     * @param menuIds 菜单功能列表
     * @return 操作条数
     */
    int addRoleMenus(@Param("roleId") Integer roleId, @Param("menuIds") List<Integer> menuIds);

    /**
     * 根据角色id、请求url、请求方法来查询
     *
     * @param roleId 角色id
     * @param requestPath 请求路径/url
     * @param requestMethod 请求方法
     * @return 角色菜单信息
     */
    List<RoleMenu> selectByPathAndMethod(@Param("roleId") Integer roleId, @Param("requestPath") String requestPath,
                                        @Param("requestMethod") String requestMethod);

    /**
     * 查询角色拥有的菜单
     *
     * @param roleId 角色id
     * @return 角色菜单
     */
    List<Menu> selectRoleMenuByRoleId(@Param("roleId") Integer roleId);
}
